<?php

require_once 'Banco.php';
require_once 'Model/Comentario.php';
require_once 'DAO/DAOUsuario.php';
require_once 'DAO/DAOEventoRepublica.php';

class DAOComentarioEventoRepublica extends Banco{
    
    function getComentarios(EventoRepublica $eventoRepublica, $limite=0) {
        $comentarios = array();
        $codRepublica = $eventoRepublica->getCodigo();
        if($limite==0){
            $query = "SELECT COER_CODIGO, COER_CODEVENTOREPUBLICA, COER_CODUSUARIO, COER_COMENTARIO, COER_DATA, COER_VISIVEL FROM TB_COMENTARIOEVENTOREPUBLICA WHERE COER_VISIVEL = 'S' AND COER_CODEVENTOREPUBLICA=? ORDER BY COER_DATA DESC;";
        }else{
            $query = "SELECT COER_CODIGO, COER_CODEVENTOREPUBLICA, COER_CODUSUARIO, COER_COMENTARIO, COER_DATA, COER_VISIVEL FROM TB_COMENTARIOEVENTOREPUBLICA WHERE COER_VISIVEL = 'S' AND COER_CODEVENTOREPUBLICA=? ORDER BY COER_DATA DESC LIMIT ".$limite.";";
        }
        
        Banco::conecta();
        $banco = Banco::getBanco();
        if ($sql = $banco->prepare($query)) {
            $sql->bind_param('i',$codRepublica);
            $sql->execute();
            $sql->bind_result($codigo, $eveRep, $usuario, $comentario, $data, $visivel);
            $DAOUsuario = new DAOUsuario();
            $DAOEventoRepublica = new DAOEventoRepublica();
            while ($sql->fetch()) {
                $com = new Comentario();
                $com->setCodigo($codigo);
                $com->setComentario($comentario);
                $com->setData($data);
                $com->setVisivel($visivel);
                $com->setUsuario($DAOUsuario->getUsuario($usuario));
                $com->setObjeto($DAOEventoRepublica->getEvento($eveRep));
                $comentarios[] = (object)$com;
            }
            $sql->close();
        }
        return $comentarios;
    }
    
    function addComentario(Comentario $comentario) {
        $com = $comentario->getComentario();
        $eveRepublica = NULL;
        $usuario = NULL;
        if(is_a($comentario->getObjeto(), 'EventoRepublica')){
            $eveRepublica=$comentario->getObjeto()->getCodigo();
        }
        if(is_a($comentario->getUsuario(), 'Usuario')){
            $usuario=$comentario->getUsuario()->getCodigo();
        }

        Banco::conecta();
        $banco = Banco::getBanco();
        if ($sql = $banco->prepare("INSERT INTO TB_COMENTARIOEVENTOREPUBLICA VALUES(default, ?, ?, ?, NOW(), default);")) {
            $sql->bind_param('iis',$eveRepublica, $usuario, $com);
            $sql->execute();
            $sql->close();
        }
    }
    
}

?>
